﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;
using Model;

namespace Controller
{
    public class cntrUsuario
    {
        public cntrUsuario()
        {
        }

        Usuario objUsuario;

        #region Salvar
        public string Save(DS_Lawyer.UsuarioRow pUsuario)
        {
           
            if (pUsuario.idUsuario == string.Empty)
            {
                this.objUsuario = new Usuario();
                this.objUsuario.IdUsuario = System.Guid.NewGuid().ToString();
                this.objUsuario.Login = pUsuario.login;
                this.objUsuario.Senha = pUsuario.senha;
            
                try
                {
                    this.objUsuario.Persist();
                }
                catch (Exception ex)
                {
                    throw ex;
                }   
            }
            else
            {
                this.objUsuario = Usuario.RetriveObject(pUsuario.idUsuario);
                this.objUsuario.Login = pUsuario.login;
                this.objUsuario.Senha = pUsuario.senha;
                try
                {
                  this.objUsuario.Update();
                }
                catch (Exception ex)
                {
                    
                    throw ex;
                }
            }
            return this.objUsuario.IdUsuario;
        }
        #endregion

        #region Select

        #region SelecByID
        public DS_Lawyer.UsuarioRow Select(string pID)
        {
            DS_Lawyer.UsuarioDataTable dtUsuario = new DS_Lawyer.UsuarioDataTable();
            DS_Lawyer.UsuarioRow rowUsuario = dtUsuario.NewUsuarioRow();

            try
            {
                this.objUsuario = Usuario.RetriveObject(pID);

                rowUsuario.idUsuario = this.objUsuario.IdUsuario;
                rowUsuario.login = this.objUsuario.Login;
                rowUsuario.senha = this.objUsuario.Senha;

            }
            catch (Exception ex)
            {

                throw ex;
            }

            return rowUsuario;
        }
        #endregion

        public static DS_Lawyer.UsuarioDataTable Select()
        {
            DS_Lawyer.UsuarioDataTable dtUsuario = new DS_Lawyer.UsuarioDataTable();
            try
            {
                IList listUsuarios = Usuario.RetriveObjects();
                for (int i = 0; i < listUsuarios.Count; i++)
                {
                    Usuario objUsuario = (Usuario)listUsuarios[i];
                    dtUsuario.AddUsuarioRow(objUsuario.IdUsuario, objUsuario.Login, objUsuario.Senha);
                }
            }
            catch (Exception ex)
            {
                //Tratar mensagem de erro aqui!
                throw ex;
                
            }
            return dtUsuario;
        }
        #endregion
    }
 }

